Skip to content

fix(generated): No changes detected in API specification#240

Closed
workos-sdk-automation[bot] wants to merge 1 commit intomainfrom
oagen/spec-update-608a735533a6afbb21e58bd1f1b05b94e8b1c162
Closed

fix(generated): No changes detected in API specification#240
workos-sdk-automation[bot] wants to merge 1 commit intomainfrom
oagen/spec-update-608a735533a6afbb21e58bd1f1b05b94e8b1c162

Conversation

@workos-sdk-automation
Copy link
Copy Markdown
Contributor

Summary

No changes detected in API specification

Spec Diff

  • Added: 0 | Removed: 0 | Modified: 0 | Breaking: 0

Triggered by openapi-spec commit: 608a735533a6afbb21e58bd1f1b05b94e8b1c162

@workos-sdk-automation workos-sdk-automation Bot requested a review from a team as a code owner April 27, 2026 20:06
@workos-sdk-automation workos-sdk-automation Bot added the autogenerated Autogenerated code or content label Apr 27, 2026
@workos-sdk-automation workos-sdk-automation Bot requested a review from a team as a code owner April 27, 2026 20:06
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 27, 2026

Greptile Summary

Despite the PR description claiming "No changes detected in API specification," this auto-generated PR introduces several breaking public API changes alongside additive features (new GroupsService, WaitlistUser entities, expanded OAuth provider enums, and new webhook event types).

  • EventSchema gutted: all properties and methods removed, leaving the class empty and breaking any consumer reading event data from it.
  • Eight AuthorizationService method renames (e.g. ListOrganizationMembershipResourcesAsyncListResourcesForMembershipAsync) with no backward-compatible overloads, breaking existing callers.
  • AdminEmailsItContactEmails property rename in GenerateLink and AdminPortalOptions, breaking callers that pass admin email lists.

Confidence Score: 3/5

Not safe to merge without confirming these are intentional breaking changes and that the version bump reflects a major/breaking release.

Three distinct P1 breaking changes (gutted EventSchema, 8+ AuthorizationService method renames, AdminEmails property rename) that will cause compile failures for existing consumers. The PR description claiming zero spec changes while introducing these renames warrants extra scrutiny. Additive changes (Groups service, WaitlistUser, new enum values) are clean.

src/WorkOS.net/Entities/EventSchema.cs, src/WorkOS.net/Services/Authorization/AuthorizationService.cs, src/WorkOS.net/Entities/GenerateLink.cs, src/WorkOS.net/Services/AdminPortal/_interfaces/AdminPortalOptions.cs

Important Files Changed

Filename Overview
src/WorkOS.net/Entities/EventSchema.cs All properties and utility methods removed, leaving the class completely empty — a hard breaking change for any consumer.
src/WorkOS.net/Services/Authorization/AuthorizationService.cs Eight public method renames (both async and sync wrappers) with no backward-compatible overloads, breaking existing callers.
src/WorkOS.net/Entities/GenerateLink.cs AdminEmails renamed to ItContactEmails, breaking existing callers who set that property.
src/WorkOS.net/Services/AdminPortal/_interfaces/AdminPortalOptions.cs AdminEmails renamed to ItContactEmails in parallel with GenerateLink.cs, same breaking impact.
src/WorkOS.net/Entities/FlagDeleted.cs Context property now typed as FlagCreatedContext — possibly correct if schema is shared, but the name is misleading.
src/WorkOS.net/Services/Groups/GroupsService.cs New service for Groups CRUD operations (list, create, get, update, delete groups and memberships); implementation looks correct.
src/WorkOS.net/Entities/WaitlistUser.cs New entity representing a waitlist user with standard properties; looks correct.
src/WorkOS.net/Enums/WaitlistUserState.cs New enum for waitlist user states (Unknown, Pending, Approved, Denied) with proper serialization converters.
src/WorkOS.net/Client/WorkOSClient.Generated.cs Adds lazy-initialized Groups and UserManagementOrganizationMembershipGroups properties to the client; looks correct.

Class Diagram

%%{init: {'theme': 'neutral'}}%%
classDiagram
    class WorkOSClient {
        +Groups GroupsService
        +UserManagementOrganizationMembershipGroups UMOMGService
    }
    class GroupsService {
        +ListOrganizationGroupsAsync()
        +CreateOrganizationGroupAsync()
        +GetOrganizationGroupAsync()
        +UpdateOrganizationGroupAsync()
        +DeleteOrganizationGroupAsync()
        +ListOrganizationMembershipsAsync()
        +CreateOrganizationMembershipAsync()
        +DeleteOrganizationMembershipAsync()
    }
    class AuthorizationService {
        -ListOrganizationMembershipResourcesAsync() REMOVED
        +ListResourcesForMembershipAsync()
        -ListResourcePermissionsAsync() REMOVED
        +ListEffectivePermissionsAsync()
        -ListOrganizationMembershipRoleAssignmentsAsync() REMOVED
        +ListRoleAssignmentsAsync()
        -DeleteOrganizationMembershipRoleAssignmentAsync() REMOVED
        +RemoveRoleAssignmentAsync()
    }
    class EventSchema {
        <<empty - all properties removed>>
    }
    class WaitlistUser {
        +string Object
        +string Id
        +string Email
        +WaitlistUserState State
        +DateTimeOffset ApprovedAt
        +DateTimeOffset CreatedAt
        +DateTimeOffset UpdatedAt
    }
    class WaitlistUserState {
        <<enum>>
        Unknown
        Pending
        Approved
        Denied
    }
    WorkOSClient --> GroupsService
    WorkOSClient --> AuthorizationService
    WaitlistUser --> WaitlistUserState
Loading

Reviews (1): Last reviewed commit: "fix(generated): No changes detected in A..." | Re-trigger Greptile

Comment on lines 6 to 8
/// <summary>An event emitted by WorkOS.</summary>
public class EventSchema
{
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 EventSchema class body completely removed

All public properties (Object, Id, Event, Data, CreatedAt, Context) and utility methods (GetDataAttribute<T>, GetContextAttribute<T>) have been stripped from this class, leaving it empty. Any existing consumer that accesses eventSchema.Data, eventSchema.Id, or calls GetDataAttribute<T> will receive a compile-time error. If this class is still referenced as a typed event envelope, removing its entire contract is a breaking API change that deserves explicit mention regardless of what the spec diff reports.

/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>A page of <see cref="AuthorizationResource"/> results.</returns>
public virtual async Task<WorkOSList<AuthorizationResource>> ListOrganizationMembershipResourcesAsync(string organizationMembershipId, AuthorizationListOrganizationMembershipResourcesOptions? options = null, RequestOptions? requestOptions = null, CancellationToken cancellationToken = default)
public virtual async Task<WorkOSList<AuthorizationResource>> ListResourcesForMembershipAsync(string organizationMembershipId, AuthorizationListResourcesForMembershipOptions? options = null, RequestOptions? requestOptions = null, CancellationToken cancellationToken = default)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Multiple breaking public method renames

Several public methods were renamed without preserving the old names as overloaded or [Obsolete] wrappers, breaking existing callers:

  • ListOrganizationMembershipResourcesAsyncListResourcesForMembershipAsync
  • ListResourcePermissionsAsyncListEffectivePermissionsAsync
  • ListOrganizationMembershipRoleAssignmentsAsyncListRoleAssignmentsAsync
  • DeleteOrganizationMembershipRoleAssignmentAsyncRemoveRoleAssignmentAsync
  • CreateRolePermissionAsyncAddOrganizationRolePermissionAsync
  • UpdateRolePermissionsAsyncSetOrganizationRolePermissionsAsync
  • DeleteRolePermissionAsyncRemoveOrganizationRolePermissionAsync
  • GetOrganizationResourceAsyncGetResourceByExternalIdAsync

The synchronous compatibility wrappers (non-Async suffixed) were also renamed, so both call sites break. If this is a minor/patch release, existing code calling these methods will fail to compile after upgrading.

Comment on lines 34 to +35

/// <summary>The email addresses of the IT admins to grant access to the Admin Portal for the given organization. Accepts up to 20 emails.</summary>
public List<string>? AdminEmails { get; set; }
/// <summary>The email addresses of the IT contacts to grant access to the Admin Portal for the given organization. Accepts up to 20 emails.</summary>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Breaking property rename: AdminEmailsItContactEmails

AdminEmails has been renamed to ItContactEmails in both GenerateLink and AdminPortalOptions. Any existing code that sets AdminEmails will fail to compile. The same rename occurs in AdminPortalOptions.cs line 37. If consumers are currently passing admin email lists when generating links, their builds will break silently (JSON serialization would also silently drop the old key if the consumer assembles the request object manually).


/// <summary>Additional context about the event.</summary>
public EventSchemaContext Context { get; set; } = default!;
public FlagCreatedContext Context { get; set; } = default!;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 FlagDeleted.Context uses FlagCreatedContext type

The Context property on FlagDeleted is typed as FlagCreatedContext, which was introduced for the flag.created event. If the context schema really is shared between create and delete events, a more neutral name like FlagEventContext would avoid confusion. If they differ, this may be a generator error where the wrong type was reused for the delete event.

@gjtorikian gjtorikian closed this Apr 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autogenerated Autogenerated code or content

Development

Successfully merging this pull request may close these issues.

1 participant